package dto

// UserRegisterRequest 用户注册请求
type UserRegisterRequest struct {
	Username string `json:"username" binding:"required,min=3,max=32"` // 用户名
	Password string `json:"password" binding:"required,min=6,max=32"` // 密码
	Email    string `json:"email" binding:"required,email"`           // 邮箱
}

// UserLoginRequest 用户登录请求
type UserLoginRequest struct {
	Username string `json:"username" binding:"required"` // 用户名
	Password string `json:"password" binding:"required"` // 密码
}

// UserLoginResponse 用户登录响应
type UserLoginResponse struct {
	Token string `json:"token"` // 令牌
}

// UserInfoResponse 用户信息响应
type UserInfoResponse struct {
	ID        uint   `json:"id"`         // 用户ID
	Username  string `json:"username"`   // 用户名
	Email     string `json:"email"`      // 邮箱
	Phone     string `json:"phone"`      // 手机号
	Status    int    `json:"status"`     // 状态
	CreatedAt string `json:"created_at"` // 创建时间
	UpdatedAt string `json:"updated_at"` // 更新时间
}

// UserUpdateRequest 更新用户信息请求
type UserUpdateRequest struct {
	Email string `json:"email" binding:"omitempty,email"` // 邮箱
	Phone string `json:"phone" binding:"omitempty"`       // 手机号
}

// UserChangePasswordRequest 修改密码请求
type UserChangePasswordRequest struct {
	OldPassword string `json:"old_password" binding:"required"`              // 旧密码
	NewPassword string `json:"new_password" binding:"required,min=6,max=32"` // 新密码
}

// UserListResponse 用户列表响应
type UserListResponse struct {
	Total int64              `json:"total"` // 总条数
	Items []UserInfoResponse `json:"items"` // 用户列表
}
